技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
10
0
自我挑戰組
技術隨筆
系列 第
10
篇
資料同步的實作選擇
16th鐵人賽
sixwings
2024-09-24 23:57:28
231 瀏覽
分享至
當專案需要保存外部資料源而且需要確保外部資料源維持在最新狀態時,就會需要作資料同步的動作。以下簡介可以選擇的幾種作法(本篇屬筆記性質,供參)
輪詢 polling: 最常見的作法,一樣維持原本 request 取得資料的方式,最容易實作,但對於外部資料源的伺服器負擔比較大
伺服器推送 Server-Sent Events: 由 client 發起,但能夠達到伺服器推送資料效果的作法,比 websocket 的複雜度低,但是不支援雙向傳輸
WebSocket: 可以實現資料同步的需求,在資料變更時能夠主動告知 client
Webhooks: 高效的實作,但 client 需要支援 POST request, 而且有相對的安全議題需要注意
額外的優化項目
使用分頁參數: 降低資料傳輸量
使用 updated_at 過濾掉已同步過的資料內容
把「資料刪除」也視為一種異動,返回資料刪除的標記代表刪除
使用更動標記提示內容有改動的資料欄位
根據資料異動的頻率調整 polling 的週期
留言
追蹤
檢舉
上一篇
沒有 docker registry 要怎麼保存 image? - 低配版 docker image 管理方法
下一篇
安全性 UP - 避免 root 帳號打通關
系列文
技術隨筆
共
30
篇
目錄
RSS系列文
訂閱系列文
2
人訂閱
26
Laravel 11 升級指南 & 版本管理策略
27
透過 Protobuf 改善 JWT 傳輸性能是可行的嗎?
28
PHP 未來可能支援原生的事件迴圈嗎?
29
OAuth 在 2024 年的發展現況
30
古老但值得學習的技術 - Lisp
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19691
篇
完賽人數
530
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
清掉所有cookie及暫存資料後,再次登入蝦皮還沒驗手機號前,就已偵測出我的帳號名稱!這是什麼技術?
作為新手想踏入MIS領域,應該讀什麼?
M365 Outlook無法接收到 msa.hinet.net 網域信件
匯入edge系統管理範本後,原本的傳統系統管理範本遺失了
minecraft模組製作遇到BUG
熱門回答
作為新手想踏入MIS領域,應該讀什麼?
M365 Outlook無法接收到 msa.hinet.net 網域信件
清掉所有cookie及暫存資料後,再次登入蝦皮還沒驗手機號前,就已偵測出我的帳號名稱!這是什麼技術?
熱門文章
版本控制是什麼?為什麼Git是必學工具?
Day.6 好文件長什麼樣(命名規則・錯誤訊息格式・時間格式 ISO 8601)
Day 5 🔧 第一次動手:Postman 按按鈕測 2 次 產出:1 份 Collection(站/路線+到站各一支)
如何解決,Teams 未讀,聊天1,未讀訊息的紅點 消除不了/也找不到是哪一個訊息未讀,煩死了,爛透了
Day 17:自動化防禦流程實作(End-to-End Pipeline)
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}